﻿<UserControl xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"  xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  x:Class="SLApp.DataGrid"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel Margin="10,10,10,10">
            <TextBlock Text="DataGrid Demonstration" Margin="0,20,10,20"
            FontFamily="Verdana" FontSize="18" FontWeight="Bold"
            Foreground="#FF5C9AC9" />
            <basics:DatePicker Width="200"></basics:DatePicker>
            <TextBlock Text="DataGrid with autogenerated columns:"/>
            <data:DataGrid x:Name="dataGrid1" 
            Height="140" Margin="0,5,0,10"
            AutoGenerateColumns="True" />

            <TextBlock Text="DataGrid with row details sections:"/>
            <data:DataGrid x:Name="dataGrid3" 
            Height="140" Margin="0,5,0,10"
            RowDetailsVisibilityMode="VisibleWhenSelected" >
                <data:DataGrid.RowDetailsTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock FontSize="12" Text="Address: " />
                            <TextBlock FontSize="12" Text="{Binding Address}"/>
                        </StackPanel>
                    </DataTemplate>
                </data:DataGrid.RowDetailsTemplate>
            </data:DataGrid>

            <TextBlock Text="DataGrid with configured columns:"/>
            <data:DataGrid x:Name="dataGrid4" 
            Height="160" Margin="0,5,0,10" 
            RowHeight="40" AutoGenerateColumns="False" >
                <data:DataGrid.Columns>
                    <data:DataGridTextColumn 
                    Header="First Name" 
                    Width="SizeToHeader"
                    Binding="{Binding FirstName}" 
                    FontSize="20" />
                    <data:DataGridTextColumn 
                    Header="Last Name" 
                    Width="SizeToCells"
                    Binding="{Binding LastName}" 
                    FontSize="20" />
                    <data:DataGridTextColumn 
                    Header="Address"
                    Width="150"
                    Binding="{Binding Address}" >
                        <data:DataGridTextColumn.ElementStyle>
                            <Style TargetType="TextBlock">
                                <Setter Property="TextWrapping" Value="Wrap"/>
                            </Style>
                        </data:DataGridTextColumn.ElementStyle>
                        <data:DataGridTextColumn.EditingElementStyle>
                            <Style TargetType="TextBox">
                                <Setter Property="Foreground" Value="Blue"/>
                            </Style>
                        </data:DataGridTextColumn.EditingElementStyle>
                    </data:DataGridTextColumn>
                    <data:DataGridCheckBoxColumn 
                    Header="New?" 
                    Width="40"
                    Binding="{Binding IsNew}" />
                    <data:DataGridCheckBoxColumn 
                    Header="Subscribed?" 
                    Width="Auto"
                    Binding="{Binding IsSubscribed}" 
                    IsThreeState="True" />
                </data:DataGrid.Columns>
            </data:DataGrid>

            <TextBlock Text="DataGrid with template column and custom alternating row backgrounds:"/>
            <data:DataGrid x:Name="dataGrid5" 
            Height="125" Margin="0,5,0,10"
            AutoGenerateColumns="False"
            RowBackground="Azure"
            AlternatingRowBackground="LightSteelBlue">
                <data:DataGrid.Columns>
                    <!-- Name Column -->
                    <data:DataGridTemplateColumn Header="Name">
                        <data:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Padding="5,0,5,0"
                                    Text="{Binding FirstName}"/>
                                    <TextBlock Text="{Binding LastName}"/>
                                </StackPanel>
                            </DataTemplate>
                        </data:DataGridTemplateColumn.CellTemplate>
                        <data:DataGridTemplateColumn.CellEditingTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBox Padding="5,0,5,0"
                                    Text="{Binding FirstName}"/>
                                    <TextBox Text="{Binding LastName}"/>
                                </StackPanel>
                            </DataTemplate>
                        </data:DataGridTemplateColumn.CellEditingTemplate>
                    </data:DataGridTemplateColumn>
                    <!-- Address Column -->
                    <data:DataGridTextColumn
                    Header="Address" Width="300"
                    Binding="{Binding Address}" />
                </data:DataGrid.Columns>
            </data:DataGrid>
        </StackPanel>
    </Grid>
</UserControl>
